<?php
$server = stream_socket_server('tcp://0.0.0.0:8080', $errno, $errstr);// 创建一个 TCP 服务器，监听本地的 8080 端口
if (!$server) {die("$errstr ($errno)");}//获取stream_socket_server返回false时的错误信息并输出
echo "Server running at http://0.0.0.0:8080\n";//输出调试信息到控制台
stream_set_timeout($server, 5);// 设置超时时间为 5 秒
while (true) {
    $client = stream_socket_accept($server);// 接受客户端连接
    if ($client) {
        // 读取客户端请求
        $request = fread($client, 1024);
        var_dump($request); // 调试：输出请求的内容，可用于分析请求头和请求体的结构和数据
        // 简单的 HTTP 响应
        $response = "HTTP/1.1 200 OK\r\n";
        $response .= "Content-Type: text/plain\r\n";
        $response .= "Content-Length: 12\r\n";
        $response .= "\r\n";
        $response .= "Hello World!";
        fwrite($client, $response);// 发送响应给客户端
        fclose($client);// 关闭客户端连接
    } else {
        $info = stream_get_meta_data($server);
        if ($info['timed_out']) {
            echo "Connection timed out, retrying...\n";
        }
    }
}
fclose($server);// 关闭服务器
?>